package model

// APP路由表，用来存储路由的转发信息及是否需要授权信息
type AppRouter struct {
	Id        uint64 `gorm:"column:id;type:bigint unsigned;primaryKey;autoIncrement;not null" form:"id" json:"id"`
	AppId     uint   `gorm:"column:app_id;type:int unsigned;not null;comment:APP_ID" form:"app_id" json:"app_id"`                        //APP_ID
	Router    string `gorm:"column:router;type:varchar(200);comment:路由地址，需拼接所属APP的前缀" form:"router" json:"router"`                       //路由地址，需拼接所属APP的前缀
	Targets   string `gorm:"column:targets;type:text;comment:转发地址，[]string{}格式的JSON字符串" form:"targets" json:"targets"`                   //转发地址，[]string{}格式的JSON字符串
	IsLogin   uint8  `gorm:"column:is_login;type:tinyint unsigned;comment:是否需要登录授权【APP中的JWT类型TOKEN】" form:"is_login" json:"is_login"`    //是否需要登录授权【APP中的JWT类型TOKEN】
	IsKey     uint8  `gorm:"column:is_key;type:tinyint unsigned;comment:是否需要KEY授权（权限鉴定）" form:"is_key" json:"is_key"`                    //是否需要KEY授权（权限鉴定）
	KeyType   uint8  `gorm:"column:key_type;type:tinyint unsigned;comment:KEY授权类型 0-无需授权 1-通用授权 2-专用授权" form:"key_type" json:"key_type"` //KEY授权类型 0-无需授权 1-通用授权 2-专用授权
	KeyUse    int    `gorm:"column:key_use;type:int;comment:专用授权的授权值" form:"key_use" json:"key_use"`                                     //专用授权的授权值
	CreatedAt string `gorm:"column:created_at;type:datetime" form:"created_at" json:"created_at"`
	UpdatedAt string `gorm:"column:updated_at;type:datetime" form:"updated_at" json:"updated_at"`
}

// 返回所属表名信息
func (c *AppRouter) TableName() string {
	return "app_router"
}
